export const TheCompactAbi = [
  {
    inputs: [
      { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
      { internalType: "uint256", name: "providedAmount", type: "uint256" },
    ],
    name: "AllocatedAmountExceeded",
    type: "error",
  },
  { inputs: [], name: "BalanceOverflow", type: "error" },
  {
    inputs: [{ internalType: "uint256", name: "expiration", type: "uint256" }],
    name: "Expired",
    type: "error",
  },
  {
    inputs: [
      { internalType: "address", name: "account", type: "address" },
      { internalType: "uint256", name: "id", type: "uint256" },
    ],
    name: "ForcedWithdrawalAlreadyDisabled",
    type: "error",
  },
  { inputs: [], name: "InsufficientBalance", type: "error" },
  { inputs: [], name: "InsufficientPermission", type: "error" },
  { inputs: [], name: "InvalidBatchAllocation", type: "error" },
  { inputs: [], name: "InvalidBatchDepositStructure", type: "error" },
  { inputs: [], name: "InvalidDepositBalanceChange", type: "error" },
  { inputs: [], name: "InvalidDepositTokenOrdering", type: "error" },
  {
    inputs: [{ internalType: "uint256", name: "duration", type: "uint256" }],
    name: "InvalidRegistrationDuration",
    type: "error",
  },
  {
    inputs: [{ internalType: "address", name: "allocator", type: "address" }],
    name: "InvalidRegistrationProof",
    type: "error",
  },
  {
    inputs: [{ internalType: "uint256", name: "id", type: "uint256" }],
    name: "InvalidScope",
    type: "error",
  },
  { inputs: [], name: "InvalidSignature", type: "error" },
  {
    inputs: [{ internalType: "address", name: "token", type: "address" }],
    name: "InvalidToken",
    type: "error",
  },
  { inputs: [], name: "OnlyDirectCalls", type: "error" },
  { inputs: [], name: "Permit2CallFailed", type: "error" },
  {
    inputs: [{ internalType: "uint256", name: "id", type: "uint256" }],
    name: "PrematureWithdrawal",
    type: "error",
  },
  {
    inputs: [
      { internalType: "address", name: "existingCaller", type: "address" },
    ],
    name: "ReentrantCall",
    type: "error",
  },
  { inputs: [], name: "TStoreAlreadyActivated", type: "error" },
  { inputs: [], name: "TStoreNotSupported", type: "error" },
  { inputs: [], name: "TloadTestContractDeploymentFailed", type: "error" },
  {
    inputs: [
      { internalType: "address", name: "operator", type: "address" },
      { internalType: "address", name: "from", type: "address" },
      { internalType: "address", name: "to", type: "address" },
      { internalType: "uint256", name: "id", type: "uint256" },
      { internalType: "uint256", name: "amount", type: "uint256" },
    ],
    name: "UnallocatedTransfer",
    type: "error",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: false,
        internalType: "uint96",
        name: "allocatorId",
        type: "uint96",
      },
      {
        indexed: false,
        internalType: "address",
        name: "allocator",
        type: "address",
      },
    ],
    name: "AllocatorRegistered",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "owner",
        type: "address",
      },
      {
        indexed: true,
        internalType: "address",
        name: "spender",
        type: "address",
      },
      { indexed: true, internalType: "uint256", name: "id", type: "uint256" },
      {
        indexed: false,
        internalType: "uint256",
        name: "amount",
        type: "uint256",
      },
    ],
    name: "Approval",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "sponsor",
        type: "address",
      },
      {
        indexed: true,
        internalType: "address",
        name: "allocator",
        type: "address",
      },
      {
        indexed: true,
        internalType: "address",
        name: "arbiter",
        type: "address",
      },
      {
        indexed: false,
        internalType: "bytes32",
        name: "claimHash",
        type: "bytes32",
      },
    ],
    name: "Claim",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "sponsor",
        type: "address",
      },
      {
        indexed: false,
        internalType: "bytes32",
        name: "claimHash",
        type: "bytes32",
      },
      {
        indexed: false,
        internalType: "bytes32",
        name: "typehash",
        type: "bytes32",
      },
      {
        indexed: false,
        internalType: "uint256",
        name: "expires",
        type: "uint256",
      },
    ],
    name: "CompactRegistered",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "account",
        type: "address",
      },
      { indexed: true, internalType: "uint256", name: "id", type: "uint256" },
      {
        indexed: false,
        internalType: "bool",
        name: "activating",
        type: "bool",
      },
      {
        indexed: false,
        internalType: "uint256",
        name: "withdrawableAt",
        type: "uint256",
      },
    ],
    name: "ForcedWithdrawalStatusUpdated",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "owner",
        type: "address",
      },
      {
        indexed: true,
        internalType: "address",
        name: "operator",
        type: "address",
      },
      { indexed: false, internalType: "bool", name: "approved", type: "bool" },
    ],
    name: "OperatorSet",
    type: "event",
  },
  {
    anonymous: false,
    inputs: [
      { indexed: false, internalType: "address", name: "by", type: "address" },
      { indexed: true, internalType: "address", name: "from", type: "address" },
      { indexed: true, internalType: "address", name: "to", type: "address" },
      { indexed: true, internalType: "uint256", name: "id", type: "uint256" },
      {
        indexed: false,
        internalType: "uint256",
        name: "amount",
        type: "uint256",
      },
    ],
    name: "Transfer",
    type: "event",
  },
  {
    inputs: [],
    name: "DOMAIN_SEPARATOR",
    outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [],
    name: "__activateTstore",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "allocator", type: "address" },
      { internalType: "bytes", name: "proof", type: "bytes" },
    ],
    name: "__registerAllocator",
    outputs: [{ internalType: "uint96", name: "", type: "uint96" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct TransferComponent[]",
            name: "transfers",
            type: "tuple[]",
          },
          { internalType: "address", name: "recipient", type: "address" },
        ],
        internalType: "struct BatchTransfer",
        name: "transfer",
        type: "tuple",
      },
    ],
    name: "allocatedTransfer",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitByIdComponent[]",
            name: "transfers",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitBatchTransfer",
        name: "transfer",
        type: "tuple",
      },
    ],
    name: "allocatedTransfer",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "uint256", name: "id", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "recipients",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitTransfer",
        name: "transfer",
        type: "tuple",
      },
    ],
    name: "allocatedTransfer",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "amount", type: "uint256" },
          { internalType: "address", name: "recipient", type: "address" },
        ],
        internalType: "struct BasicTransfer",
        name: "transfer",
        type: "tuple",
      },
    ],
    name: "allocatedTransfer",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "amount", type: "uint256" },
          { internalType: "address", name: "recipient", type: "address" },
        ],
        internalType: "struct BasicTransfer",
        name: "withdrawal",
        type: "tuple",
      },
    ],
    name: "allocatedWithdrawal",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitByIdComponent[]",
            name: "transfers",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitBatchTransfer",
        name: "withdrawal",
        type: "tuple",
      },
    ],
    name: "allocatedWithdrawal",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct TransferComponent[]",
            name: "transfers",
            type: "tuple[]",
          },
          { internalType: "address", name: "recipient", type: "address" },
        ],
        internalType: "struct BatchTransfer",
        name: "withdrawal",
        type: "tuple",
      },
    ],
    name: "allocatedWithdrawal",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "uint256", name: "id", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "recipients",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitTransfer",
        name: "withdrawal",
        type: "tuple",
      },
    ],
    name: "allocatedWithdrawal",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "owner", type: "address" },
      { internalType: "address", name: "spender", type: "address" },
      { internalType: "uint256", name: "id", type: "uint256" },
    ],
    name: "allowance",
    outputs: [{ internalType: "uint256", name: "amount", type: "uint256" }],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "spender", type: "address" },
      { internalType: "uint256", name: "id", type: "uint256" },
      { internalType: "uint256", name: "amount", type: "uint256" },
    ],
    name: "approve",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "payable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "owner", type: "address" },
      { internalType: "uint256", name: "id", type: "uint256" },
    ],
    name: "balanceOf",
    outputs: [{ internalType: "uint256", name: "amount", type: "uint256" }],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct ExogenousSplitBatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct QualifiedClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct QualifiedBatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitBatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct QualifiedMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct ExogenousQualifiedBatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct QualifiedMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType:
          "struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct ExogenousMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct ExogenousSplitMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct ClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct ExogenousQualifiedSplitMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType:
          "struct ExogenousQualifiedSplitMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitBatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct BatchClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType:
          "struct ExogenousQualifiedBatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct ExogenousMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct QualifiedClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct ExogenousQualifiedMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct BasicClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitBatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct BatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct BatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct ExogenousSplitMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct ExogenousSplitBatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct QualifiedBatchClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct QualifiedBatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct BatchClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitBatchClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitBatchClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct QualifiedBatchClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct MultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct MultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct ExogenousQualifiedSplitBatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitBatchClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitBatchClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct ExogenousQualifiedMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct ExogenousBatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct ExogenousBatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitBatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claim",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct ExogenousQualifiedBatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitBatchClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitBatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct QualifiedBatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitBatchClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct QualifiedClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct QualifiedBatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct MultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct QualifiedClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct ExogenousSplitBatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitBatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct ExogenousBatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct ClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct ExogenousSplitMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct ExogenousQualifiedMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct BatchClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitBatchClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct ExogenousSplitBatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitBatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType:
          "struct ExogenousQualifiedSplitMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct BatchClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct MultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct ExogenousQualifiedSplitMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitBatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct ExogenousQualifiedSplitBatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct ExogenousMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct QualifiedBatchClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct BasicClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct BatchMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct BatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct ExogenousMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct QualifiedMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType:
          "struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct ExogenousSplitMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct ExogenousQualifiedMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct ExogenousBatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          { internalType: "address", name: "claimant", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct QualifiedMultichainClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              {
                components: [
                  {
                    internalType: "address",
                    name: "claimant",
                    type: "address",
                  },
                  { internalType: "uint256", name: "amount", type: "uint256" },
                ],
                internalType: "struct SplitComponent[]",
                name: "portions",
                type: "tuple[]",
              },
            ],
            internalType: "struct SplitBatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
        ],
        internalType: "struct SplitBatchClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType: "struct QualifiedBatchClaim",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          { internalType: "uint256", name: "id", type: "uint256" },
          { internalType: "uint256", name: "allocatedAmount", type: "uint256" },
          {
            components: [
              { internalType: "address", name: "claimant", type: "address" },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct SplitComponent[]",
            name: "claimants",
            type: "tuple[]",
          },
        ],
        internalType: "struct QualifiedSplitClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        components: [
          { internalType: "bytes", name: "allocatorSignature", type: "bytes" },
          { internalType: "bytes", name: "sponsorSignature", type: "bytes" },
          { internalType: "address", name: "sponsor", type: "address" },
          { internalType: "uint256", name: "nonce", type: "uint256" },
          { internalType: "uint256", name: "expires", type: "uint256" },
          { internalType: "bytes32", name: "witness", type: "bytes32" },
          { internalType: "string", name: "witnessTypestring", type: "string" },
          {
            internalType: "bytes32",
            name: "qualificationTypehash",
            type: "bytes32",
          },
          {
            internalType: "bytes",
            name: "qualificationPayload",
            type: "bytes",
          },
          {
            internalType: "bytes32[]",
            name: "additionalChains",
            type: "bytes32[]",
          },
          { internalType: "uint256", name: "chainIndex", type: "uint256" },
          {
            internalType: "uint256",
            name: "notarizedChainId",
            type: "uint256",
          },
          {
            components: [
              { internalType: "uint256", name: "id", type: "uint256" },
              {
                internalType: "uint256",
                name: "allocatedAmount",
                type: "uint256",
              },
              { internalType: "uint256", name: "amount", type: "uint256" },
            ],
            internalType: "struct BatchClaimComponent[]",
            name: "claims",
            type: "tuple[]",
          },
          { internalType: "address", name: "claimant", type: "address" },
        ],
        internalType:
          "struct ExogenousQualifiedBatchMultichainClaimWithWitness",
        name: "claimPayload",
        type: "tuple",
      },
    ],
    name: "claimAndWithdraw",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [{ internalType: "uint256[]", name: "nonces", type: "uint256[]" }],
    name: "consume",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [{ internalType: "uint256", name: "id", type: "uint256" }],
    name: "decimals",
    outputs: [{ internalType: "uint8", name: "", type: "uint8" }],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "token", type: "address" },
      { internalType: "uint256", name: "", type: "uint256" },
      { internalType: "uint256", name: "", type: "uint256" },
      { internalType: "uint256", name: "", type: "uint256" },
      { internalType: "address", name: "", type: "address" },
      { internalType: "address", name: "", type: "address" },
      { internalType: "enum ResetPeriod", name: "", type: "uint8" },
      { internalType: "enum Scope", name: "", type: "uint8" },
      { internalType: "address", name: "recipient", type: "address" },
      { internalType: "bytes", name: "signature", type: "bytes" },
    ],
    name: "deposit",
    outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "allocator", type: "address" },
      { internalType: "enum ResetPeriod", name: "resetPeriod", type: "uint8" },
      { internalType: "enum Scope", name: "scope", type: "uint8" },
      { internalType: "address", name: "recipient", type: "address" },
    ],
    name: "deposit",
    outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
    stateMutability: "payable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "token", type: "address" },
      { internalType: "address", name: "allocator", type: "address" },
      { internalType: "enum ResetPeriod", name: "resetPeriod", type: "uint8" },
      { internalType: "enum Scope", name: "scope", type: "uint8" },
      { internalType: "uint256", name: "amount", type: "uint256" },
      { internalType: "address", name: "recipient", type: "address" },
    ],
    name: "deposit",
    outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "token", type: "address" },
      { internalType: "address", name: "allocator", type: "address" },
      { internalType: "uint256", name: "amount", type: "uint256" },
    ],
    name: "deposit",
    outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "", type: "address" },
      {
        components: [
          { internalType: "address", name: "token", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct ISignatureTransfer.TokenPermissions[]",
        name: "permitted",
        type: "tuple[]",
      },
      { internalType: "uint256", name: "", type: "uint256" },
      { internalType: "uint256", name: "", type: "uint256" },
      { internalType: "address", name: "", type: "address" },
      { internalType: "enum ResetPeriod", name: "", type: "uint8" },
      { internalType: "enum Scope", name: "", type: "uint8" },
      { internalType: "address", name: "recipient", type: "address" },
      { internalType: "bytes", name: "signature", type: "bytes" },
    ],
    name: "deposit",
    outputs: [{ internalType: "uint256[]", name: "", type: "uint256[]" }],
    stateMutability: "payable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "uint256[2][]",
        name: "idsAndAmounts",
        type: "uint256[2][]",
      },
      { internalType: "address", name: "recipient", type: "address" },
    ],
    name: "deposit",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "payable",
    type: "function",
  },
  {
    inputs: [{ internalType: "address", name: "allocator", type: "address" }],
    name: "deposit",
    outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
    stateMutability: "payable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "token", type: "address" },
      { internalType: "uint256", name: "", type: "uint256" },
      { internalType: "uint256", name: "", type: "uint256" },
      { internalType: "uint256", name: "", type: "uint256" },
      { internalType: "address", name: "depositor", type: "address" },
      { internalType: "address", name: "", type: "address" },
      { internalType: "enum ResetPeriod", name: "resetPeriod", type: "uint8" },
      { internalType: "enum Scope", name: "", type: "uint8" },
      { internalType: "bytes32", name: "claimHash", type: "bytes32" },
      {
        internalType: "enum CompactCategory",
        name: "compactCategory",
        type: "uint8",
      },
      { internalType: "string", name: "witness", type: "string" },
      { internalType: "bytes", name: "signature", type: "bytes" },
    ],
    name: "depositAndRegister",
    outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "uint256[2][]",
        name: "idsAndAmounts",
        type: "uint256[2][]",
      },
      {
        internalType: "bytes32[2][]",
        name: "claimHashesAndTypehashes",
        type: "bytes32[2][]",
      },
      { internalType: "uint256", name: "duration", type: "uint256" },
    ],
    name: "depositAndRegister",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "payable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "allocator", type: "address" },
      { internalType: "bytes32", name: "claimHash", type: "bytes32" },
      { internalType: "bytes32", name: "typehash", type: "bytes32" },
    ],
    name: "depositAndRegister",
    outputs: [{ internalType: "uint256", name: "id", type: "uint256" }],
    stateMutability: "payable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "depositor", type: "address" },
      {
        components: [
          { internalType: "address", name: "token", type: "address" },
          { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        internalType: "struct ISignatureTransfer.TokenPermissions[]",
        name: "permitted",
        type: "tuple[]",
      },
      { internalType: "uint256", name: "", type: "uint256" },
      { internalType: "uint256", name: "", type: "uint256" },
      { internalType: "address", name: "", type: "address" },
      { internalType: "enum ResetPeriod", name: "resetPeriod", type: "uint8" },
      { internalType: "enum Scope", name: "", type: "uint8" },
      { internalType: "bytes32", name: "claimHash", type: "bytes32" },
      {
        internalType: "enum CompactCategory",
        name: "compactCategory",
        type: "uint8",
      },
      { internalType: "string", name: "witness", type: "string" },
      { internalType: "bytes", name: "signature", type: "bytes" },
    ],
    name: "depositAndRegister",
    outputs: [{ internalType: "uint256[]", name: "", type: "uint256[]" }],
    stateMutability: "payable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "token", type: "address" },
      { internalType: "address", name: "allocator", type: "address" },
      { internalType: "uint256", name: "amount", type: "uint256" },
      { internalType: "bytes32", name: "claimHash", type: "bytes32" },
      { internalType: "bytes32", name: "typehash", type: "bytes32" },
    ],
    name: "depositAndRegister",
    outputs: [{ internalType: "uint256", name: "id", type: "uint256" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [{ internalType: "uint256", name: "id", type: "uint256" }],
    name: "disableForcedWithdrawal",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [{ internalType: "uint256", name: "id", type: "uint256" }],
    name: "enableForcedWithdrawal",
    outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [{ internalType: "bytes32", name: "slot", type: "bytes32" }],
    name: "extsload",
    outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [{ internalType: "bytes32[]", name: "slots", type: "bytes32[]" }],
    name: "extsload",
    outputs: [{ internalType: "bytes32[]", name: "", type: "bytes32[]" }],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [{ internalType: "bytes32", name: "slot", type: "bytes32" }],
    name: "exttload",
    outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [
      { internalType: "uint256", name: "id", type: "uint256" },
      { internalType: "address", name: "recipient", type: "address" },
      { internalType: "uint256", name: "amount", type: "uint256" },
    ],
    name: "forcedWithdrawal",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "account", type: "address" },
      { internalType: "uint256", name: "id", type: "uint256" },
    ],
    name: "getForcedWithdrawalStatus",
    outputs: [
      { internalType: "enum ForcedWithdrawalStatus", name: "", type: "uint8" },
      { internalType: "uint256", name: "", type: "uint256" },
    ],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [{ internalType: "uint256", name: "id", type: "uint256" }],
    name: "getLockDetails",
    outputs: [
      { internalType: "address", name: "", type: "address" },
      { internalType: "address", name: "", type: "address" },
      { internalType: "enum ResetPeriod", name: "", type: "uint8" },
      { internalType: "enum Scope", name: "", type: "uint8" },
    ],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "sponsor", type: "address" },
      { internalType: "bytes32", name: "claimHash", type: "bytes32" },
      { internalType: "bytes32", name: "typehash", type: "bytes32" },
    ],
    name: "getRegistrationStatus",
    outputs: [
      { internalType: "bool", name: "isActive", type: "bool" },
      { internalType: "uint256", name: "expires", type: "uint256" },
    ],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [
      { internalType: "uint256", name: "nonce", type: "uint256" },
      { internalType: "address", name: "allocator", type: "address" },
    ],
    name: "hasConsumedAllocatorNonce",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "owner", type: "address" },
      { internalType: "address", name: "spender", type: "address" },
    ],
    name: "isOperator",
    outputs: [{ internalType: "bool", name: "status", type: "bool" }],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [{ internalType: "uint256", name: "id", type: "uint256" }],
    name: "name",
    outputs: [{ internalType: "string", name: "", type: "string" }],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [],
    name: "name",
    outputs: [{ internalType: "string", name: "", type: "string" }],
    stateMutability: "pure",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "bytes32[2][]",
        name: "claimHashesAndTypehashes",
        type: "bytes32[2][]",
      },
      { internalType: "uint256", name: "duration", type: "uint256" },
    ],
    name: "register",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "bytes32", name: "claimHash", type: "bytes32" },
      { internalType: "bytes32", name: "typehash", type: "bytes32" },
      { internalType: "uint256", name: "duration", type: "uint256" },
    ],
    name: "register",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "operator", type: "address" },
      { internalType: "bool", name: "approved", type: "bool" },
    ],
    name: "setOperator",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "payable",
    type: "function",
  },
  {
    inputs: [{ internalType: "bytes4", name: "interfaceId", type: "bytes4" }],
    name: "supportsInterface",
    outputs: [{ internalType: "bool", name: "result", type: "bool" }],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [{ internalType: "uint256", name: "id", type: "uint256" }],
    name: "symbol",
    outputs: [{ internalType: "string", name: "", type: "string" }],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [{ internalType: "uint256", name: "id", type: "uint256" }],
    name: "tokenURI",
    outputs: [{ internalType: "string", name: "", type: "string" }],
    stateMutability: "view",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "to", type: "address" },
      { internalType: "uint256", name: "id", type: "uint256" },
      { internalType: "uint256", name: "amount", type: "uint256" },
    ],
    name: "transfer",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "payable",
    type: "function",
  },
  {
    inputs: [
      { internalType: "address", name: "from", type: "address" },
      { internalType: "address", name: "to", type: "address" },
      { internalType: "uint256", name: "id", type: "uint256" },
      { internalType: "uint256", name: "amount", type: "uint256" },
    ],
    name: "transferFrom",
    outputs: [{ internalType: "bool", name: "", type: "bool" }],
    stateMutability: "payable",
    type: "function",
  },
] as const;
